home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / gfabasic / gfa_ptch / gfa_ptch.txt < prev    next >
Encoding:
Text File  |  1994-09-22  |  9.5 KB  |  211 lines

  1. --------------------------------------------------------------------------------
  2. -                   GFA-BASIC Interpreter/Compiler-Patcher                     -
  3. -                               Version 0.99                                   -
  4. --------------------------------------------------------------------------------
  5. - Compiler & Library-Patches von                                               -
  6. - Christoph Conrad, Adalbertsteinweg 113, D-52070 Aachen, eMail: AC3.maus.de   -
  7.  
  8. - Interpreter-Patches und GEM-Oberfläche von                                   -
  9. - Gregor Duchalski, Baueracker 15a, D-44627 Herne, eMail: DO.maus.ruhr.de      -
  10. --------------------------------------------------------------------------------
  11.  
  12. Das vorliegende Programm gestattet es auf komfortable Weise, sinnvolle Patches
  13. am GFA-BASIC 3.x Interpreter & Compiler vorzunehmen. 
  14.  
  15. Wählen Sie bitte zu Beginn den Basic-Interpreter oder Compiler (GFA_BCOM.PRG)
  16. aus. Danach gelangen Sie in den jeweiligen Einstellungsdialog.
  17.  
  18. Etwas vorweg: Sicherheitshalber sollten Sie die gepatchten Programme nicht unter
  19. dem Original-Namen abspeichern. Wir übernehmen keine Gewähr für die Funktions-
  20. fähigkeit der Patches, wer also seinen Interpreter zermanscht und keine Sicher-
  21. heitskopie besitzt, ist selber schuld!
  22.  
  23. --------------------------------------------------------------------------------
  24. Patchen des Compilers
  25. --------------------------------------------------------------------------------
  26. Am Compiler bzw. an der Lib können zwei Veränderungen vorgenommen werden:
  27.  
  28. -Einfügung eines verbesserter INIT-Teils
  29. -Bugfix für den Absturz unter MAGX!
  30.  
  31. Beide Patches können getrennt oder auch in 'einem Rutsch' vorgenommen werden.
  32. Der MAG!X-Patch verändert nur die Datei GFA_BCOM.PRG, der INIT-Patch auch
  33. die Library.
  34.  
  35. Im Patch-Dialog können Sie nun angeben, unter welchen Namen der gepatchte
  36. Compiler bzw. die Library gespeichert werden sollen. Ggf. können Sie hier auch 
  37. die Original-Library erneut festlegen, falls der voreingestellte Name nicht 
  38. zutreffen sollte. 
  39.  
  40. --------------------------------------------------------------------------------
  41. Patchen des Compilers I: Neuer INIT-Teil
  42. --------------------------------------------------------------------------------
  43. Genaue Hintergrund-Informationen über den neuen INIT-Teil entnehmen Sie
  44. bitte dem Text LIBPATCH.TXT.
  45.  
  46. Wichtig: Im Ordner LIBPATCH müssen sich die Dateien HIDEM.O, INIT35.O und 
  47. INIT36.O befinden!
  48.  
  49. Klicken Sie nun auf 'Patchen', so wird der automatische Patchvorgang gestartet. 
  50. Am Ende wird versucht, mit dem Programm MAKE_NDX.PRG eine neue Indexdatei 
  51. (GFA3BLIB.NDX) zu erzeugen. Dieses Programm (es sollte sich im Lieferumfang 
  52. Ihres Compilers befunden haben) wird zunächst im Ordner der Original-Library, 
  53. danach im Ordner LIBPATCH gesucht. Bei Mißerfolg können Sie diese Datei noch 
  54. in der Dateiauswahlbox auswählen. Schlägt auch das fehl, so beendet sich das 
  55. Programm. Bedenken Sie bitte, daß Sie in diesem Fall eine NDX-Datei 'per Hand'
  56. anlegen müssen. Vermeiden Sie diese Situation also besser.
  57.  
  58. --------------------------------------------------------------------------------
  59. Patchen des Compilers II: MAG!X-Bugfix
  60. --------------------------------------------------------------------------------
  61. Der Compiler stürzt unter MAG!X mit der Meldung "Speicherblock zerstört" ab.
  62.  
  63. Ursache:
  64. Der Compiler reduziert per MShrink (GEMDOS 74) seinen Speicherbedarf auf das
  65. Notwendige. Per Malloc (GEMDOS 72) fragt er dann nach dem größten
  66. verfügbaren Speicherblock und alloziert diese Größe abzüglich 16 KByte.
  67. Leider geht das Programm davon aus, daß der allozierte Speicher direkt
  68. hinter dem vorher geshrinkten Bereich liegt. Im allgemeinen stimmt dies
  69. sogar. Unter MAG!X liegt vor dem allokierten Speicherblock (die
  70. Adresse, die MAlloc zurueckgibt) allerdings ein sogenannter MCB, der 'Memory
  71. Control Block'.
  72.  
  73. Dieser enthält
  74. - eine Kennung ('ANDR' oder 'KROM', einer der Programmierer,
  75.   Andreas Kromke, läßt grüßen)
  76. - die Länge des allozierten Blocks
  77. - die Basepageadresse des Programmes, welchem der Block gehört
  78. - den Zeiger auf den letzten MCB.
  79.  
  80. Der GFA-Compiler ueberschreibt den MCB. Nach dem Terminieren des Compilers
  81. überprüft MAG!X, ob die Kette der MCBs noch in Ordnung ist und meldet den
  82. beschriebenen Fehler.
  83.  
  84. Übrigens: Auch unter MultiTOS tritt dieses Problem zunächst auf. Hier kann es
  85. jedoch durch Setzen der memory-protection-flags im PRG-Header auf GLOBAL
  86. einfacher behoben werden.
  87.  
  88. Durch den Patch benutzt der GFA-Compiler die ersten 16 Byte des hinter dem
  89. MShrink liegenden Speicherbereiches nicht mehr und überschreibt demzufolge
  90. keinen MCB. Das Verhalten des Compilers bleibt trotzdem inkorrekt, da der
  91. allozierte Bereich nicht unbedingt hinter dem vom Compiler noch belegten
  92. Speicher liegen muß (obwohl dies in der Regel zutrifft).
  93.  
  94. --------------------------------------------------------------------------------
  95. Patchen des Interpreters
  96. --------------------------------------------------------------------------------
  97. Hierbei handelt es sich entweder um von GFA dokumentierte, praktische 
  98. Konfigurationspatches oder um Fehlerkorrekturen, die zum Großteil von 
  99. Christoph Conrad aufgespürt wurden.
  100.  
  101. Patchbare Interpreter:
  102.  
  103.  Version:       Dateilänge:
  104.   3.6TT          104770
  105.                  104766
  106.                  104739
  107.   3.5E           103510
  108.   3.50           102519
  109.                  102523
  110.   3.07           92894
  111.   
  112. Was wird im Interpreter gepatcht?
  113.  
  114.  -Keine LINEA-Aufrufe mehr:
  115.   Siehe auch LIBPATCH.TXT. Beim Bewegen der Maus im Editor gibt es zwar
  116.   nun leichte Flecken, dafür aber keine beim laufenden Programm.
  117.  
  118.  -Keine SETCOLOR-Aufrufe mehr, die auf dem TT die Farben verstellen:
  119.   Das Basic begeht beim internen Setzen und Abfragen der Bildschirmfarben 
  120.   einen Fehler, der in Auflösungen wie TT-Mittel dazu führt, daß nach dem
  121.   Interpreter-Lauf einige Farben verstellt sind. Dieser Patch verhindert dies.
  122.   Auch der Befehl SETCOLOR hat danach keine Wirkung mehr. Hier sollte ohnehin
  123.   besser VSETCOLOR verwendet werden.
  124.    
  125.  -Kein Abbruch mehr bei MERGE, wenn ASCII 4 im Quelltext vorkommt:
  126.   Der Interpreter bricht normalerweise das Mergen von Files, die das Zeichen
  127.   ASCII 4 (EOT == End of transmission, CONTROL D, Pfeil nach links) enthalten, 
  128.   ab der entsprechenden Zeile ab. Unter UN*Xen ist ASCII 4 das Dateiendezeichen,
  129.   was auf einst recht grosse Ambitionen von GFA-Systemtechnik hindeutet. 
  130.   Dieser Patch unterbindet dieses störende Verhalten.
  131.  
  132.  -CALL-Bug beheben:
  133.   Der CALL-Befehl im Interpreter Version 3.6 D TT der Groesse 104770 Byte ist
  134.   aufgrund eines Tippfehlers (movem.l a4/a6,-(sp) anstatt movem.l a4-a6,-(sp))
  135.   fehlerhaft. Der Patch 'repariert' diesen Befehl.
  136.  
  137.  -Die DEFLIST-Voreinstellung
  138.  -Die Editor-Farben
  139.  -Der Default-Variablentyp, der ohne Postfix eingegeben werden darf.
  140.   Voreingestellt Float.
  141.  -Kein CLS bei Programmstart
  142.  
  143. Das Patchen ist denkbar einfach: Nur die zu patchenden Optionen festlegen und
  144. 'Patchen...' anwählen. Danach kann der gepatchte Interpreter unter einem neuen
  145. Namen gespeichert werden.
  146.  
  147. --------------------------------------------------------------------------------
  148. Versions-History
  149. --------------------------------------------------------------------------------
  150. Vers.   Datum
  151.  
  152.         24.07.93 -Erste vorläufige Version. Und schon ändere ich mal
  153.                   kurz die Versionsnummernzählung. :-)
  154.  
  155. 0.90ß   26.07.93 -MERGE-Patch für den 3.50er Interpreter eingebaut.
  156.                  -Default-Variablentyp des geladenen Interpreters
  157.                   wird ausgelesen und angezeigt.
  158.                  -Patches um weitere Versionen erweitert.
  159.  
  160. 0.91ß   27.07.93 -Kein 'Mäusedreck' bei Dateiauswahlbox mehr
  161.                  -Mit der Compiler-Patch-Unterstützung begonnen.
  162.         
  163. 0.92ß   29.07.93 -DEFFILL-Patch eingebaut, war in der Tat falsch dokumentiert.
  164.                  -GFA_BCOM.PRG wird nicht mehr anhand einer Tabelle ausgewertet,
  165.                   sondern alle nötigen Daten werden direkt aus der Datei geholt.
  166.  
  167.         01.08.93 -Der Compiler wurde falsch gepatcht.
  168.  
  169. 0.93    08.08.93 -Library-Patches integriert.
  170.  
  171. 0.94    13.08.93 -Aufruf des MAKE_NDX-Programmes war fehlerhaft.
  172.                  -MERGE-Patch für den 3.5E Interpreter eingebaut.
  173.                  -Anleitung überarbeitet.
  174.  
  175. 0.95    19.08.93 -Restliche Patches eingebaut: Line-A und SETCOLOR-Unter-
  176.                   drückung für die Version 3.07.
  177.                  -DEFFILL-Patch um den Wert 8 erweitert.
  178.                  -Doku nochmal überarbeitet.
  179.  
  180. 0.96    28.08.93 -3.6 Interpreter mit 104739 Bytes wird unterstützt.
  181.                  -Line-A Patch für 3.07 funktionierte nicht.
  182.  
  183. 0.97    27.09.93 -3.6 Interpreter mit 104766 Bytes wird unterstützt.
  184.  
  185. 0.98    29.09.93 -Mit den Anpassungen an den MAG!X-Compiler-Patch begonnen.
  186.  
  187.         02.10.93 -MAG!X-Patch komplett eingebaut.
  188.  
  189.         04.10.93 -Zu Beginn erscheint jetzt ein kurzer Informationsdialog.
  190.  
  191. 0.99    23.01.94 -Neuer INIT-Teil, der alte enthielt einen Fehler im
  192.                   Zusammenhang mit Fließkommavariablen.
  193.  
  194.                  -Das Programm benutzt kein LINEA mehr.
  195.  
  196. --------------------------------------------------------------------------------
  197. Und sonst?
  198.  
  199. Die neueste Version dieses Programmes ist immer in der Maus DO2 zu finden und
  200. über den Mausring damit auch in MK und UN2.
  201.  
  202. Wer Vorschläge hat, weitere Patches kennt oder eine Basic-Version besitzt, die
  203. nicht unterstützt wird, kann sich gerne an uns wenden. 
  204.  
  205. Viel Spaß wünschen
  206.  
  207.  Gregor Duchalski & Christoph Conrad
  208.  
  209. --------------------------------------------------------------------------------
  210. Herne, 23.01.94
  211.